On sequential data, simultaneous processing of data in a relatively small domain is often preferred. For example, in processing image data, data to be processed on target pixel is generated from multiple items of the data of the target pixel and its peripheral pixels. In motion estimation (ME) of a motion vector by block-matching, based on given pixel data within a given pixel block having a predetermined dimension on a location in a preceding frame, an estimation is made as to which of pixel data within a pixel block having the same dimension as the above pixel block in the subsequent frame is the closest to the above given pixel data. The displacement between positions of the two-pixel blocks is defined to be a motion vector.
Here, the items of the pixel data within the above pixel blocks are simultaneously read out of a memory storing the image data, and calculation of differences between the corresponding items of pixel data is also simultaneously performed for each of the pixels. Such data processing leads to a use of a natural and hence comprehensive processing system or algorithm.
Conventionally, however, a general-purpose memory such as a synchronous DRAM is used as a memory storing the image data, and thus, the pixel data is sequentially read out of the general-purpose memory with a high transfer rate and temporarily accumulated in a register to form a necessary tap or a necessary pixel block. In this case, it is inevitable to generate waiting time when all the items of data are accumulated, which has been of a hindrance to a high-speed and efficient processing of image data.
In a conventional data processing of a motion picture, a motion vector is used that represents a motion direction and magnitude of an object in the images that are displaced in time. Such a motion vector is used in motion compensation predictive encoding of an image for high-efficiency coding.
As a motion magnitude determination method for determining this image, Japanese Patent Publication H7-222157 discloses a method for forming multiple hierarchical classes of image data having different resolutions from the input image data, and determining motion vector of a set position of input image using the multiple hierarchical classes of image data, to reduce an amount of operation.
In this motion vector determination method, the input image data (image data of hierarchical class 1) is first averaged according to mean-value hierarchizing such as averaging and low-pass filtering to produce the image data having a reduced number of pixels (image data of hierarchical class 2). Next, a rough motion vector is determined in the image data of hierarchical class 2, and then a fine motion vector is determined in the image data of hierarchical class 1 based on the rough motion vector, thereby permitting the determination of a motion vector with a reduced amount of calculation.
It would be apparent that the number of hierarchical classes is not limited to two as in the example shown above. A motion vector may be determined as the above cases by repeating the mean-value hierarchizing in sequence to produce further hierarchical classes 3 and 4 of image data having further reduced numbers of pixels.
In this case, if the same memory unit stores image data belonging to the respective hierarchical classes when read and write of the image data of the respective hierarchical classes can be made independently, this has an increased efficiency.